package com.seatch.msgateway.controller;


import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.IOException;
import java.io.StringReader;
import java.util.Properties;
import java.util.concurrent.Executor;

@Controller
@Data
@RefreshScope
public class TestController {

//    @Autowired
//    private NacosConfigManager nacosConfigManager;

//    @Autowired
//    private DemoClient demoClient;

//    @NacosValue(value  = "${a.a}",autoRefreshed = true)
//    private String testAVal;
//
//    @GetMapping("/test")
//    @ResponseBody
//    public Object test()
//    {
//        return null;
//    }

//    @RequestMapping(method = RequestMethod.GET,value = "/get-demo-list")
//    public Object getDemoList()
//    {
//        return demoClient.getDemoList();
//    }
//
//    @RequestMapping(method = RequestMethod.GET,value = "/delete-demo")
//    public Object deleteDemo(Object id)
//    {
//        return demoClient.deleteDemo(id);
//    }

}

//
//@Component
//class SampleRunner implements ApplicationRunner {
//
//    @Autowired
//    private NacosConfigManager nacosConfigManager;
//
//    @Override
//    public void run(ApplicationArguments args) throws Exception {
//        // nacosConfigManager.getConfigService().addListener();
//        String config = nacosConfigManager.getConfigService().getConfig("common-dev.yaml", "DEFAULT_GROUP", 1000);
//        nacosConfigManager.getConfigService().addListener(
//                "common-dev.yaml", "DEFAULT_GROUP", new Listener() {
//
//                    /**
//                     * Callback with latest config data.
//                     * @param configInfo latest config data for specific dataId in Nacos
//                     * server
//                     */
//                    @Override
//                    public void receiveConfigInfo(String configInfo) {
//                        System.out.println("  receiveConfigInfo");
//
//                        Properties properties = new Properties();
//                        try {
//                            properties.load(new StringReader(configInfo));
//                        }
//                        catch (IOException e) {
//                            e.printStackTrace();
//                        }
//                        System.out.println("config changed: " + properties);
//                    }
//
//                    @Override
//                    public Executor getExecutor() {
//                        System.out.println("get executor");
//                        return null;
//                    }
//                });
//    }
//
//}
